From 63bae41267336770d67febcef6b9d07a9a30af3a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 17 May 2014 11:58:17 +0300 Subject: [PATCH] Fix bug #17511 with unclear documentation of line-move-ignore-invisible. lisp/simple.el (line-move-ignore-invisible): Doc fix. doc/lispref/display.texi (Invisible Text): Clarify the description of line-move-ignore-invisible. --- doc/lispref/ChangeLog | 5 +++++ doc/lispref/display.texi | 18 ++++++++++++------ lisp/ChangeLog | 4 ++++ lisp/simple.el | 11 ++++++++++- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index fba8c003639..64c5880a4d1 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2014-05-17 Eli Zaretskii + + * display.texi (Invisible Text): Clarify the description of + line-move-ignore-invisible. (Bug#17511) + 2014-05-07 Paul Eggert * internals.texi (C Dialect): New section. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index acbef6b9495..e93f9ab5a4d 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -930,12 +930,14 @@ current value of @code{buffer-invisibility-spec}. @vindex line-move-ignore-invisible Ordinarily, functions that operate on text or move point do not care -whether the text is invisible. The user-level line motion commands -ignore invisible newlines if @code{line-move-ignore-invisible} is -non-@code{nil} (the default), but only because they are explicitly -programmed to do so. - - However, if a command ends with point inside or at the boundary of +whether the text is invisible, they process invisible characters and +visible characters alike. The user-level line motion commands, +such as @code{next-line}, @code{previous-line}, ignore invisible +newlines if @code{line-move-ignore-invisible} is non-@code{nil} (the +default), i.e., behave like these invisible newlines didn't exist in +the buffer, but only because they are explicitly programmed to do so. + + If a command ends with point inside or at the boundary of invisible text, the main editing loop relocates point to one of the two ends of the invisible text. Emacs chooses the direction of relocation so that it is the same as the overall movement direction of @@ -952,6 +954,10 @@ command moved point forward into an invisible range, Emacs moves point forward to the first visible character that follows the invisible text and then forward one more character. + These @dfn{adjustments} of point that ended up in the middle of +invisible text can be disabled by setting @code{disable-point-adjustment} +to a non-@code{nil} value. @xref{Adjusting Point}. + Incremental search can make invisible overlays visible temporarily and/or permanently when a match includes invisible text. To enable this, the overlay should have a non-@code{nil} diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e4b30507465..3f65a0f767d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2014-05-17 Eli Zaretskii + + * simple.el (line-move-ignore-invisible): Doc fix. (Bug#17511) + 2014-05-16 Michael Albinus * net/dbus.el (dbus-init-bus, dbus-call-method) diff --git a/lisp/simple.el b/lisp/simple.el index 36d2d0b3a15..1b14250e2fd 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4978,7 +4978,16 @@ When the `track-eol' feature is doing its job, the value is `most-positive-fixnum'.") (defcustom line-move-ignore-invisible t - "Non-nil means \\[next-line] and \\[previous-line] ignore invisible lines. + "Non-nil means commands that move by lines ignore invisible newlines. + +When this option is non-nil, \\[next-line], \\[previous-line], \\[move-end-of-line], and \\[move-beginning-of-line] behave +as if newlines that are invisible didn't exist, and count +only visible newlines. Thus, moving across across 2 newlines +one of which is invisible will be counted as a one-line move. +Also, a non-nil value causes invisible text to be ignored when +counting columns for the purposes of keeping point in the same +column by \\[next-line] and \\[previous-line]. + Outline mode sets this." :type 'boolean :group 'editing-basics) -- 2.30.2